package model;
// Generated 15/10/2011 23:08:22 by Hibernate Tools 3.2.1.GA


import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import com.sun.xml.bind.CycleRecoverable;


@Entity
@Table(name="emp_tipo_lixo"
    ,catalog="ws_elixo"
)



public class EmpTipoLixo  implements java.io.Serializable, CycleRecoverable {


     private EmpTipoLixoId id;
     private Empresa empresa;
     private TipoLixo tipoLixo;
     private boolean flagAtivo;

    public EmpTipoLixo() {
    }

	
    public EmpTipoLixo(EmpTipoLixoId id, Empresa empresa, TipoLixo tipoLixo) {
        this.id = id;
        this.empresa = empresa;
        this.tipoLixo = tipoLixo;
    }
    public EmpTipoLixo(EmpTipoLixoId id, Empresa empresa, TipoLixo tipoLixo, boolean flagAtivo) {
       this.id = id;
       this.empresa = empresa;
       this.tipoLixo = tipoLixo;
       this.flagAtivo = flagAtivo;
    }
   
     @EmbeddedId
    
    @AttributeOverrides( {
        @AttributeOverride(name="idEmpresa", column=@Column(name="id_empresa", nullable=false) ), 
        @AttributeOverride(name="idTipoLixo", column=@Column(name="id_tipo_lixo", nullable=false) ) } )
    public EmpTipoLixoId getId() {
        return this.id;
    }
    
    public void setId(EmpTipoLixoId id) {
        this.id = id;
    }
@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="id_empresa", nullable=false, insertable=false, updatable=false)
    public Empresa getEmpresa() {
        return this.empresa;
    }
    
    public void setEmpresa(Empresa empresa) {
        this.empresa = empresa;
    }
@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="id_tipo_lixo", nullable=false, insertable=false, updatable=false)
    public TipoLixo getTipoLixo() {
        return this.tipoLixo;
    }
    
    public void setTipoLixo(TipoLixo tipoLixo) {
        this.tipoLixo = tipoLixo;
    }
    
    @Column(name="flag_ativo")
    public boolean getFlagAtivo() {
        return this.flagAtivo;
    }
    
    public void setFlagAtivo(boolean flagAtivo) {
        this.flagAtivo = flagAtivo;
    }

    @Override
    public Object onCycleDetected(Context cntxt) {
    System.out.println("CycleRecoverable.onCycleDetected # ".concat(this.toString()));
    EmpTipoLixo n = new EmpTipoLixo();
    n.setId(this.getId());
    return n;
    }





}


